一覧に戻る

地域メッシュデータをかんたんに可視化しよう

#Python#GIS#可視化

TL;DR

https://github.com/Kanahiro/jismesh-raster

  • 地域メッシュデータのCSVからかんたんに位置情報つきTIFを作れるツールをつくったよ
  • pip install jismesh-rasterでインストールできるよ

サンプル

はじめに

  • 標準地域メッシュは、経緯度を一定のルールで均等に分割して得られるメッシュです
  • メッシュの形状自体に意味はなく、紐付けられる集計値が重要なので、ベクターデータよりラスターデータが適している(わざわざベクターデータにして頂点の座標を保持する必要はないということです)
  • 本スクリプトでは、1 つメッシュに 1 ピクセルを割り当て、同時に適切な位置情報を付与したワールドファイルを出力します

対応メッシュ

標準地域メッシュおよび分割地域メッシュに対応しています

標準地域メッシュ

メッシュ番号詳細メッシュコード
180km メッシュ4 桁
210km メッシュ6 桁
31km メッシュ8 桁

分割地域メッシュ

3 次メッシュを基準し、任意の回数 4 分割して得られるメッシュ

メッシュ番号詳細メッシュコード
4500m メッシュ9 桁
5250m メッシュ10 桁
6125m メッシュ11 桁

インストール

pip install jismesh-raster

使い方

コマンド

必須項目:
  csvfile 読み込むCSVファイル
  output  データの保存先絶対パス

optional arguments:
  --meshcol  メッシュコードのカラムを0から始まる番号、デフォルトは0
  --valuecol 値のカラムを0から始まる番号、デフォルトは1
  --method 集計方法、mean, median, min, max, stddev, sum
  --nodata   データがないメッシュにセットする値、デフォルトは-9999.0
  --noheader CSVにヘッダーが無い場合に入力

具体例

以下の形式の CSV を例とする(出典:全国の人流オープンデータ

mesh1kmid,prefcode,citycode,year,month,dayflag,timezone,population
53394519,13,13101,2019,01,0,0,13533
53394519,13,13101,2019,01,0,1,5818
53394519,13,13101,2019,01,2,2,26039
53394528,13,13101,2019,01,0,0,27561
53394528,13,13101,2019,01,1,2,57219
53394528,13,13101,2019,01,2,0,73526
  • 上記 CSV はmeshdata.csv、出力する TIF ファイルをmesh.tifとする
  • メッシュコードのカラムは左端から数えて 1 列目のmesh1kmid、メッシュ画像にしたい値は 8 列目のpopulationである
  • このスクリプトでは 0 をスタートとして数えるので、0列目、7列目と読み替える
  • もし複数行にわたって同一のメッシュコードが存在する場合は、その合計値を求める
  • データが存在しない部分の値は-999999.0とする
jismesh-raster meshdata.csv mesh.tif --meshcol 0 --valuecol 7 --method sum --nodata -999999.0
  • meshcolのデフォルト値は0なので、今回の場合省略出来る
  • nodataのデフォルト値は-9999.0なので、それでもよければ省略出来る
jismesh-raster meshdata.csv mesh.tif --valuecol 7 --method sum
  • CSV の複数行にわたって同一のメッシュコードが存在する場合に methodを指定されていないとエラーとなる

以下のような CSV の場合

53394519,13533
53394519,5818
53394519,26039
53394528,27561
53394528,57219
53394528,73526
  • ヘッダー行が無い場合はnoheaderオプションを指定する
  • valuecolのデフォルト値は1なので、上記の場合省略出来る
jismesh-raster meshdata.csv mesh.tif --method mean --noheader

出力データと仕様

  • .tif ファイル
    • 拡張子は必ずしも.tifではなく、コマンド引数で指定したファイル名となる
    • Float32
    • Single band
    • GeoTiff ではないことに留意(ヘッダーは書き込まれていない)
    • CSV に存在するメッシュが全て含まれる最小の解像度となる
  • .tfw ファイル
    • .tif ファイルと同名で書き出される
    • 経緯度で設定されている(つまり CRS はEPSG:4326